package chapter06;

public class Java01_Exception {
    public static void main(String[] args) {
        // TODO 异常
        // 1.类型转换错误
        /*
        String s = "123";
        Integer i = (Integer)s;
         */

        // 2.递归没有跳出逻辑:java.lang.StackOverflowError
        /*
        test();
         */

        // 3.访问一个为空对象的成员方法时,出现的错误:java.lang.NullPointerException
        /*
        User u = null;
        System.out.println(u.toString());
         */

        /*
            Java中的错误
            1.语法错误
            2.Error类-尽量避免
            3.异常(Exception):分为两类
                3.1 可以通过代码恢复正常逻辑执行的异常,称之为运行期异常:RuntimeException
                3.2 不可以通过代码恢复正常逻辑执行的异常,称之为编译期异常:Exception

            错误的范围有大小之分,范围越小的类错误约详细
            JAVA中异常范围最大的异常类是RuntimeException
            编译器中异常范围最大的异常类是Exception
            RuntimeException与Exception不是同一种东西,但其是继承(从属)关系
         */

    }
    public static void test() {
        test();
    }
}
class User01 {

}